#ifndef MA_COLOR_UTILS_H
#define MA_COLOR_UTILS_H

#include <stdint.h>

// 定义颜色结构体
typedef struct {
    uint8_t red;
    uint8_t green;
    uint8_t blue;
    uint8_t alpha; // 可选透明度字段（当前未使用）
} STColor;

// 默认颜色定义
extern const STColor COLOR_RED;
extern const STColor COLOR_GREEN;
extern const STColor COLOR_BLUE;
extern const STColor COLOR_WHITE;
extern const STColor COLOR_BLACK;
extern const STColor COLOR_YELLOW;
extern const STColor COLOR_CYAN;
extern const STColor COLOR_MAGENTA;

// 辅助函数声明
void set_bg_color(const STColor *color);
void set_fg_color(const STColor *color);
void reset_colors(void);

// 功能函数声明
void print_colored_square(const STColor *color);
void print_colored_character(const STColor *fg_color, const STColor *bg_color, const char *character);
void print_colored_string(const STColor *color, const char *text);

// Function to convert STColor (pointer) to uint32_t
uint32_t stcolor_to_u32(const STColor* color);

// Function to convert uint32_t to STColor (pointer)
void u32_to_stcolor(uint32_t color, STColor* result);


#endif // COLOR_UTILS_H